Software developers use a variety of software tools when creating or modifying software programs. For example, a source code analyzer is a tool used to check a program's source code for inconsistencies, such as reading an uninitialized variable or using a structure after freeing the memory allocated to the structure. A compiler is a tool used to translate a program's source code into executable code. A version controller is a tool used to manage different versions of source code and/or different versions of executable code. A debugger is a tool used to test and debug other programs. A profiler is a tool used to measure consumption of resources by a program, such as processor cycles and memory.
Some software development tools have been gathered into an integrated development environment (IDE). An IDE is itself a software tool, which provides various other tools for software development in a coordinated manner. For example, a typical IDE includes at least a source code editor, a compiler and/or an interpreter, and a debugger. Some IDEs include a version controller, tools to automate building a complete program from libraries and other components, and/or tools to help create a graphical user interface. Some IDEs also have a class browser, an object inspector, and/or other tools designed specifically to help develop object oriented programs. IDEs are designed to improve developer productivity by providing coordinated tools that have similar user interfaces. An IDE may be tailored for use with a particular programming language, but some IDEs, such as the Microsoft® Visual Studio® integrated development environment (marks of Microsoft Corporation), support development in several programming languages.